// 解题思路：
// 这是一道小学应用题，典型的模拟题
// 更了更快得计算结果，不能使用循环去模拟，而是把它当成一道应用题去解，程序里面直接套公式
// 先判断一下特殊情况：如果怪的血没有勇士的攻击力高，勇士可以打死无限制怪，直接打印 -1
// 再计算怪能抗几下：
// n = H / a
// 如果 H % a != 0，就说明挨打 n 次后，怪还没死，还需要再打一下 n++，否则说明怪死了
// 再计算勇士杀这个怪需要抗几下：
// m = n - 1
// 再计算勇士能杀多少怪，前提需要勇士存活：
// count = h / (m * A)
// 如果 h % (m - 1) == 0，说明杀完 count 个怪之后就死了，因此为了保证勇士存活，count--
// 如果 h % (m - 1) != 0，说明勇士正好能杀 count 个怪后存活
// 返回杀怪的个数即可


import java.util.Scanner;

public class Fight {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while(t-- > 0){
            int h = in.nextInt(); int a = in.nextInt();
            int H = in.nextInt(); int A = in.nextInt();
            int count = 0;
            if(a >= H) System.out.println(-1);
            else{
                int n = H / a;
                if(H % a != 0) n++;
                int m = n - 1;
                count = h / (m * A);
                if(h % (m * A) == 0) count--;
                System.out.println(count);
            }
        }
    }
}
